// Header Protection
#ifndef _MAIN_H_
#define _MAIN_H_

// Include Files
#include "Definitions.h"

// Namespace
namespace IE
{
	/////////////////////////////////////////////////////////////////////////////////
	// Creation functions
	class CGame;
	extern "C" __declspec(dllexport) CGame *CreateGame();
	extern "C" __declspec(dllexport) void DestroyGame( CGame *_pGame );

	class CScene;
	extern "C" __declspec(dllexport) CScene *CreateScene();
	extern "C" __declspec(dllexport) void DestroyScene( CScene *_pScene );

	class CWindow;
	extern "C" __declspec(dllexport) CWindow *CreateGameWindow();
	extern "C" __declspec(dllexport) void DestroyGameWindow( CWindow *_pWindow );

	class CCamera;
	extern "C" __declspec(dllexport) CCamera *CreateCamera();
	extern "C" __declspec(dllexport) void DestroyCamera( CCamera *_pCamera );

	class CObject;
	extern "C" __declspec(dllexport) CObject *CreateObject();
	extern "C" __declspec(dllexport) void DestroyObject( CObject *_pObject );

	class CPanel;
	extern "C" __declspec(dllexport) CPanel *CreatePanel();
	extern "C" __declspec(dllexport) void DestroyPanel( CPanel *_pPanel );
}

// Header Protection
#endif // _MAIN_H_
